<html>
<head>
  <link rel="stylesheet" type="text/css" href="main.css">
</head>
<body>
  <div class="main">
    <h1>Namespace: joker.csv</h1>
    <span class="var-added">v1.0</span>
    <h2>Contents</h2>
    <ul>
      <li>
        <a href="#_summary">Summary</a>
      </li>
      <li>
        <a href="#_index">Index</a>
      </li>
      <li>
        <a href="#_constants">Constants</a>
      </li>
      <li>
        <a href="#_variables">Variables</a>
      </li>
      <li>
        <a href="#_functions">Functions, Macros, and Special Forms</a>
      </li>
    </ul>
    <h2 id="_summary">Summary</h2>
    <p class="var-docstr">Reads and writes comma-separated values (CSV) files as defined in RFC 4180.</p>
    <h2 id="_index">Index</h2>
    <ul class="index">
      <li>
  <a href="#csv-seq">csv-seq</a>
</li>
<li>
  <a href="#write">write</a>
</li>
<li>
  <a href="#write-string">write-string</a>
</li>

    </ul>
    <h2 id="_constants">Constants</h2>
    Constants are variables with <tt>:const true</tt> in their metadata. Joker currently does not recognize them as special; as such, it allows redefining them or their values.
    <ul>
      (None.)
    </ul>
    <h2 id="_variables">Variables</h2>
    <ul>
      (None.)
    </ul>
    <h2 id="_functions">Functions, Macros, and Special Forms</h2>
    <ul>
      <li>
  <h3 class="Function" id="csv-seq">csv-seq</h3>
  <span class="var-kind Function">Function</span>
  <span class="var-added">v1.0</span>
  <pre class="var-usage"><div><code>(csv-seq rdr)</code></div>
<div><code>(csv-seq rdr opts)</code></div>
</pre>
  <p class="var-docstr">Returns the csv records from rdr as a lazy sequence.<br>
  rdr must be a string or implement io.Reader.<br>
  opts may have the following keys:<br>
<br>
  :comma - field delimiter (defaults to &#39;,&#39;).<br>
  Must be a valid char and must not be \r, \n,<br>
  or the Unicode replacement character (0xFFFD).<br>
<br>
  :comment - comment character (defaults to 0 meaning no comments).<br>
  Lines beginning with the comment character without preceding whitespace are ignored.<br>
  With leading whitespace the comment character becomes part of the<br>
  field, even if trim-leading-space is true.<br>
  comment must be a valid chat and must not be \r, \n,<br>
  or the Unicode replacement character (0xFFFD).<br>
  It must also not be equal to comma.<br>
<br>
  :fields-per-record - number of expected fields per record.<br>
  If fields-per-record is positive, csv-seq requires each record to<br>
  have the given number of fields. If fields-per-record is 0 (default), csv-seq sets it to<br>
  the number of fields in the first record, so that future records must<br>
  have the same field count. If fields-per-record is negative, no check is<br>
  made and records may have a variable number of fields.<br>
<br>
  :lazy-quotes - if true, a quote may appear in an unquoted field and a<br>
  non-doubled quote may appear in a quoted field. Default value is false.<br>
<br>
  :trim-leading-space - if true, leading white space in a field is ignored.<br>
  This is done even if the field delimiter, comma, is white space.<br>
  Default value is false.</p>
  
  
</li>
<li>
  <h3 class="Function" id="write">write</h3>
  <span class="var-kind Function">Function</span>
  <span class="var-added">v1.0</span>
  <pre class="var-usage"><div><code>(write f data)</code></div>
<div><code>(write f data opts)</code></div>
</pre>
  <p class="var-docstr">Writes records to a CSV encoded file.<br>
  f must be io.Writer (for example, as returned by joker.os/create).<br>
  data must be Seqable, each element of which must be Seqable as well.<br>
  opts is as in joker.csv/write-string.</p>
  
  
</li>
<li>
  <h3 class="Function" id="write-string">write-string</h3>
  <span class="var-kind Function">Function</span>
  <span class="var-added">v1.0</span>
  <pre class="var-usage"><div><code>(write-string data)</code></div>
<div><code>(write-string data opts)</code></div>
</pre>
  <p class="var-docstr">Writes records to a string in CSV format and returns the string.<br>
  data must be Seqable, each element of which must be Seqable as well.<br>
  opts may have the following keys:<br>
<br>
  :comma - field delimiter (defaults to &#39;,&#39;)<br>
<br>
  :use-crlf - if true, uses \r\n as the line terminator. Default value is false.</p>
  
  
</li>

    </ul>
  </div>
</body>
<script src="main.js"></script>
</html>
